#!/usr/bin/env node

/**
 * OpenAI集成测试脚本
 * 使用方法: node scripts/test-openai.js
 * 
 * 注意：运行前请确保已配置 .env 文件中的 OPENAI_API_KEY
 */

require('dotenv/config')
const { smartParse, decomposeTask, generateSuggestions, intelligentSearch } = require('../src/services/openai')

async function testOpenAI() {
  console.log('🧪 开始测试OpenAI集成...')
  console.log('=' * 50)
  
  try {
    // 测试1: 智能解析
    console.log('\n📝 测试1: 智能解析')
    console.log('输入: "明天下午3点和老王开项目评审会，准备PPT，优先级高"')
    
    const parseResult = await smartParse('明天下午3点和老王开项目评审会，准备PPT，优先级高')
    console.log('结果:', JSON.stringify(parseResult, null, 2))
    
    // 测试2: 任务分解
    console.log('\n🔍 测试2: 任务分解')
    console.log('输入: "策划一场公司团建活动"')
    
    const decomposeResult = await decomposeTask('策划一场公司团建活动')
    console.log('结果:', JSON.stringify(decomposeResult, null, 2))
    
    // 测试3: 智能建议
    console.log('\n💡 测试3: 智能建议')
    
    const mockTasks = [
      {
        id: '1',
        title: '完成项目方案撰写',
        priority: 'P1',
        category: 'work',
        completed: false,
        createdAt: new Date().toISOString()
      },
      {
        id: '2',
        title: '和老王开项目评审会',
        priority: 'P0',
        category: 'work',
        completed: false,
        createdAt: new Date().toISOString()
      }
    ]
    
    const suggestionsResult = await generateSuggestions(mockTasks)
    console.log('结果:', JSON.stringify(suggestionsResult, null, 2))
    
    // 测试4: 智能搜索
    console.log('\n🔎 测试4: 智能搜索')
    console.log('查询: "高优先级任务"')
    
    const searchResult = await intelligentSearch('高优先级任务', mockTasks)
    console.log('结果:', JSON.stringify(searchResult, null, 2))
    
    console.log('\n✅ 所有测试完成！')
    
  } catch (error) {
    console.error('❌ 测试失败:', error.message)
    
    if (error.message.includes('API key')) {
      console.log('\n💡 提示: 请检查 .env 文件中的 OPENAI_API_KEY 配置')
    } else if (error.message.includes('network')) {
      console.log('\n💡 提示: 请检查网络连接，可能需要配置代理')
    }
  }
}

// 检查环境变量
function checkEnvironment() {
  console.log('🔍 检查环境配置...')
  
  const requiredVars = ['OPENAI_API_KEY']
  const missingVars = []
  
  requiredVars.forEach(varName => {
    if (!process.env[varName]) {
      missingVars.push(varName)
    }
  })
  
  if (missingVars.length > 0) {
    console.log('❌ 缺少必要的环境变量:', missingVars.join(', '))
    console.log('💡 请参考 OPENAI_SETUP.md 文件进行配置')
    return false
  }
  
  console.log('✅ 环境配置检查通过')
  return true
}

// 运行测试
async function main() {
  if (!checkEnvironment()) {
    process.exit(1)
  }
  
  await testOpenAI()
}

main().catch(console.error)
